package org.dromara.system.domain.bo;

import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import lombok.*;
import org.dromara.system.domain.SimCard;
import org.dromara.system.domain.base.BasePageReqDTO;

import java.util.Date;

/**
 * 流量卡业务对象 sim_card
 *
 * @author Lion Li
 * @date 2025-08-15
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SimCard.class, reverseConvertGenerate = false)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SimCardBo extends BasePageReqDTO {

    /**
     *
     */
    private Long id;

    /**
     *
     */
    private Long userId;


    //当前用户id
    private Long currentUserId;

    //需要续期次数
    private Integer renewNum;

    //已经续期次数
    private Integer alreadyRenewNum;

    /**
     * SIM卡号
     */
    @NotBlank(message = "ICCID不能为空")
    private String iccId;

    /**
     * 手机号
     */
    private String number;

    /**
     * 状态
     */
    private String status;

    /**
     * 套餐
     */
    private String packageId;

    /**
     * 开卡时间
     */
    private Date createTs;

    /**
     * 激活时间
     */
    private Date activeTs;

    /**
     * 销户时间
     * 销户时间
     */
    private Date cancelTs;

    /**
     * 停机时间
     * 停机时间
     */
    private Date stopTs;

    /**
     * 服务到期时间
     */
    private Date expireTs;

    /**
     * 流量总量
     */
    private Integer totalInternetTraffic;

    /**
     * 已使用总流量
     * 已使用总流量
     * 已使用总流量
     */
    private Integer userInternetTraffic;

    /**
     * 剩余总量
     */
    private Integer surplusInternetTraffic;

    /**
     *
     */
    private String validLength;

    /**
     *
     */
    private String validLengthZ;

    /**
     * 1已激活 0未激活
     */
    private Integer isActive;

    /**
     * 备注
     */
    private String remark;


    //公司名称
    private String company;

    //sn
    private String sn;

    private String currentUserName;

    private String currentNickName;

    private String currentRealName;

    //创建开始时间
    private Date startTime;
    //创建时间时间
    private Date endTime;

    private Date startExpireTs;

    private Date endExpireTs;

    private String search;

}
